package com.zmz.lambda;

import java.awt.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

/**
 * Create with IntelliT IDEA
 *
 * @Author: zhengmingzhe
 * @Date: 2022/07/30/19:22
 * @Description:  使用Lambda表达式遍历简单集合
 */
public class Lambda05 {
    public static  void main (String[] args){
        List<Integer> list = Arrays.asList(1,2,3,4,5,6,7);
//        List<Integer> list2 =new ArrayList<>();
//        list2.add(1);
//        list2.add(2);
//        list2.add(3);
//        list2.add(4);
//        list2.add(5);
        //第一种for循环遍历
        for(Integer integer: list){
            System.out.println(integer+"\t");
        }
        //i++循环遍历
        for(int i=0 ;i<list.size();i++){
            System.out.println(list.get(i)+"\t");
        }
        //lambda表达式遍历  先看forEach源码其实就是个增强for 往forEach里面传入了一个接口参数Consumer
        // Consumer里面的方法有一个参数  无返回值

//        default void forEach(Consumer<? super T> action) {
//            Objects.requireNonNull(action);
//            for (T t : this) {
//                action.accept(t);
//            }
//        }
//        @FunctionalInterface
//        public interface Consumer<T> {
//
//            void accept(T t);
//        }
        list.forEach((t)->{
            System.out.println(t);
        });

        //进一步优化
        list.forEach(System.out::println);
    }
}
